/* 
 * SeamRequestUtil.java
 * 
 * Data de criação: 26/08/2010
 * 
 * CORPORATIVO - MTE. 
 *
 */
package br.com.o2solutions.siso.webapp.util;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

/**
 * Classe utilitaria para utilização dos métodos de acesso ao objeto de
 * Solicitação (Request).
 * 
 * @author osvaldeir
 * @since 26/08/2010
 * 
 */
public class SeamRequestUtil {

	/**
	 * Retorna o Host do cliente ou do proxy o qual direcionol a solicitação.
	 * 
	 * @return String Nome do Host ou proxy
	 */
	public static String getHostNameClient() {
		final HttpServletRequest request = getHttpServletRequest();
		return request.getRemoteHost();
	}

	/*
	 * Retorna o {@link HttpServletRequest} da solicitação do cliente.
	 * 
	 * @return {@link HttpServletRequest}.
	 */
	private static HttpServletRequest getHttpServletRequest() {
		FacesContext currentInstance = javax.faces.context.FacesContext
				.getCurrentInstance();
		final HttpServletRequest request = (HttpServletRequest) currentInstance
				.getExternalContext().getRequest();
		return request;
	}

	/**
	 * Retorna o Endereço do cliente ou do proxy o qual direcionol a
	 * solicitação.
	 * 
	 * @return String Endereço do Host ou proxy
	 */
	public static String getHostAddressClient() {
		return getHttpServletRequest().getRemoteAddr();
	}

}
